package com.qkl.common.publics.service;

import com.alibaba.fastjson.JSON;
import com.qkl.common.publics.dto.WXRespDTO;
import com.qkl.common.publics.dto.WXTokenDTO;
import com.qkl.common.publics.utils.HttpResponse;
import com.qkl.common.publics.utils.HttpUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;

@Slf4j
@Service
public class WXService {

    private static String URL_TOKEN = "https://api.weixin.qq.com/cgi-bin/token";

    public WXTokenDTO wxToken(String appid, String secret){
        return this.wxToken(URL_TOKEN,appid,secret);
    }

    public WXTokenDTO wxToken(String url, String appid, String secret){
        Map<String,Object> paramsMap = new HashMap<>();
        paramsMap.put("appid",appid);
        paramsMap.put("secret",secret);
        paramsMap.put("grant_type","client_credential");

        HttpResponse<String> httpResp = HttpUtils.getRequest(url,paramsMap);

        WXTokenDTO wxresp = new WXTokenDTO();
        if(httpResp.isSuccess()){
            wxresp = JSON.parseObject(httpResp.getData(),WXTokenDTO.class);
        }else{
            wxresp.setErrcode(WXRespDTO.ERRCODE_WX);
            wxresp.setErrmsg(httpResp.getMsg());
        }
        return wxresp;
    }
}
